package com.zenithmind.news.service;

/**
 * 新闻交互服务接口 - 遵循接口隔离原则
 * 专门负责用户与新闻的交互操作（点赞、收藏、分享等）
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
public interface NewsInteractionService {

    /**
     * 点赞新闻
     * 
     * @param newsId 新闻ID
     * @param userId 用户ID
     * @return 是否成功
     */
    Boolean likeNews(String newsId, String userId);

    /**
     * 取消点赞新闻
     * 
     * @param newsId 新闻ID
     * @param userId 用户ID
     * @return 是否成功
     */
    Boolean unlikeNews(String newsId, String userId);

    /**
     * 收藏新闻
     * 
     * @param newsId 新闻ID
     * @param userId 用户ID
     * @return 是否成功
     */
    Boolean favoriteNews(String newsId, String userId);

    /**
     * 取消收藏新闻
     * 
     * @param newsId 新闻ID
     * @param userId 用户ID
     * @return 是否成功
     */
    Boolean unfavoriteNews(String newsId, String userId);

    /**
     * 分享新闻
     * 
     * @param newsId 新闻ID
     * @param userId 用户ID
     * @param platform 分享平台
     * @return 是否成功
     */
    Boolean shareNews(String newsId, String userId, String platform);
}
